1. Technical Field
The present invention generally relates to a method and apparatus for processing incoming packets and in particular to a method and apparatus for reducing the packet processing time. Still more particularly, the present invention relates to a method and apparatus for reducing packet processing time through the grouping of packets.
2. Description of the Related Art
The use of computer network systems for processing and transmitting data is well known in the prior art. A typical computer network system consists of at least one host computer running under some type of operating system, communications controls, communications media and a plurality of end users (terminals, printers, displays, etc.). The host computer is connected via communications media, to either a communications controller or an end user terminal. The communications controller interfaces with other communications controllers or end user terminals via communications media. The communications media may be, for example, telephone lines, channels, satellites, etc. By entering a request at a user's terminal, the user may extract data from the host computer. Similarly, a user may enter information on a terminal and have it transmitted to the host computer for processing and/or to another terminal in the network.
Various communications systems, including computer systems and computer network systems, transmit and receive information in the form of frames or packets. That is, a message or file may be broken up into many packets and sent to another user or computer on the system or network. Each packet is a separate entity on the transmission media. In the transmission of these packets, a processing overhead exists in terms of the time needed to process the packet.
Batching or consolidating single packets into groups can reduce the processing overhead when compared to processing the same number of packets separately. Consequently, consolidating the packets into a group can reduce the processing overhead since the system can process the entire group of packets at a single time. Consolidating packets into a group, however, presents some problems. Packets may arrive on the transmission media asynchonously and at somewhat random intervals. In addition, packets transmitted as a group from a source system do not always arrive as a group at the target or receiving system. That is, packets from multiple connections may be interspersed among each other.
Some data processing systems compare a first packet with a second packet to determine whether to batch the two packets together. For example, a header may be associated with a first packet is examined and a predicted profile is generated for comparison with a subsequent packet to determine whether the two packets can be consolidated together into a single group. A group also called a "super packet" could be completed when a subsequent packet did not match the profile or when the entire "super packet" was complete. Packets sent to the host processor cause an interruption so that the host processor may process the packets. It is desirable to minimize the number of times that a host processor is interrupted to process a packet or group of packets.
Therefore, it would be advantageous to have a method and apparatus for consolidating packets into groups to reduce the overhead necessary to process the packet while minimizing the number of times a host processor is interrupted to process a packet or group of packets.